package com.zhoujinlong.utils;

import com.google.gson.JsonObject;
import com.google.gson.JsonSyntaxException;

import java.lang.reflect.Type;
import java.util.Map;

/**
 * Created by Admin on 2016/6/16.
 */
public class JsonUtils {

    /**
     * 将对象准换为json字符串
     *
     * @param object
     * @param <T>
     * @return
     */
    public static <T> String serialize(T object) {
        return BaseUtil.getGsonInstance().toJson(object);
    }

    /**
     * 将json字符串转换为对象
     *
     * @param json
     * @param clz
     * @param <T>
     * @return
     */
    public static <T> T deserialize(String json, Class<T> clz) throws JsonSyntaxException {
        return BaseUtil.getGsonInstance().fromJson(json, clz);
    }

    /**
     * 将json对象转换为实体对象
     *
     * @param json
     * @param clz
     * @param <T>
     * @return
     * @throws JsonSyntaxException
     */
    public static <T> T deserialize(JsonObject json, Class<T> clz) throws JsonSyntaxException {
        return BaseUtil.getGsonInstance().fromJson(json, clz);
    }

    /**
     * 将json字符串转换为对象
     *
     * @param json
     * @param type
     * @param <T>
     * @return
     */
    public static <T> T deserialize(String json, Type type) throws JsonSyntaxException {
        return BaseUtil.getGsonInstance().fromJson(json, type);
    }

    /**
     * 将map转为json
     * @param params
     * @return
     */
    public static String deserialize(Map<String,Object> params) {
        return BaseUtil.getGsonInstance().toJson(params);
    }

}
